package main

import (
	"fmt"
	"math/rand"
	"sort"
	"strconv"
	"time"
)

// 去重
func Quchong(sliceInt []int) []int {
	tmpMap := make(map[int]struct{})
	var newsliceInt []int
	for i := range sliceInt {
		tmpMap[sliceInt[i]] = struct{}{}
	}
	for j := range tmpMap {
		newsliceInt = append(newsliceInt, j)
	}
	return newsliceInt
}

// 大乐透前五个数字
func Frist5() []int {
	var s5 []int
	for {
		for i := 0; i < 5; i++ {
			s5 = append(s5, rand.Intn(35)+1)

		}
		// 大乐透的规则没有重复的，所以要去重
		s5 = Quchong(s5)
		if len(s5) < 5 {
			s5 = []int{}
			continue
		}
		break
	}
	// 排序
	sort.Ints(s5)
	return s5
}

// 大乐透后两个数字
func End2() []int {
	var e2 []int
	for {
		for i := 0; i < 2; i++ {
			e2 = append(e2, rand.Intn(12)+1)
		}
		// 大乐透的规则没有重复的，所以要去重
		e2 = Quchong(e2)
		if len(e2) < 2 {
			e2 = []int{}
			continue
		}
		break
	}
	// 排序
	sort.Ints(e2)
	return e2
}

func main() {
	// 以时间为种子池
	fmt.Println(time.Now().UnixNano())
	rand.Seed(time.Now().UnixNano())

	// 定义一个切片存储数值
	var my500 []int

	s5 := Frist5()
	e2 := End2()

	// 把前五个数字加进去
	my500 = append(my500, s5...)

	// 把后两个数字加进去
	my500 = append(my500, e2...)

	// 拼接字符串并且打印
	var tmpstr string
	for k := range my500 {
		tmpstr = tmpstr + strconv.Itoa(my500[k]) + " "
	}

	// 打印500万的项目
	// bodyStr := fmt.Sprintf("{\"msgtype\": \"text\",\"text\": {\"content\":\"today: %s\"}}", tmpstr)
	fmt.Println(tmpstr)

}
